<?php
/**
 * Created by PhpStorm.
 * User: edmmss
 * Date: 2019/1/21
 * Time: 10:02
 */

namespace app\modules\delegation\controller;

use app\modules\delegation\JuniorDeveloper;
use app\modules\delegation\TeamLead;
use yii\web\Controller;

class DefaultController extends Controller
{
    /**
     * 委托模式示例
     * 在委托模式的示例里，一个对象将它要执行的任务委派给与之关联的帮助对象去执行
     * 在示例中，「组长」声明了 writeCode 方法并使用它，其实「组长」把 writeCode 委托给「菜鸟开发者」的 writeBadCode 方法做了
     * 这种反转责任的做法隐藏了其内部执行 writeBadCode 的细节
     *
     * @date   2019/1/21
     * @author edmmss
     * @return bool
     */
    public function actionIndex()
    {
        $junior = new JuniorDeveloper();
        $teamLead = new TeamLead($junior);

        var_dump($teamLead->writeCode());

        return true;
    }
}